A Controller Area Network (also known as “CAN bus”) is a vehicle bus standard designed to allow microcontrollers and devices to communicate with each other in applications without a host computer. CAN is a multi-master serial bus standard for connecting Electronic Control Units “ECUs” (also known as “control nodes”). Two or more nodes are required on the CAN network to communicate. All nodes are connected to each other through a two wire bus. The modern automobile may have as many as 70 electronic control units (ECU) for various subsystems, such as for example: the engine control unit, transmission control, airbags, antilock braking/ABS, cruise control, electric power steering, audio systems, power windows, doors, mirror adjustment, battery and recharging systems for hybrid/electric cars, etc.
A potential problem of the CAN bus system is that malfunction of a single device may disturb communication between all devices, or may make communication impossible. Unreliable bus communication is relatively harmless for functions such as mirror adjustment, but is of course totally unacceptable for critical functions such as engine control or safety functions.
This problem is addressed in the prior art in several ways, by making the CAN-bus physically tolerant to certain faults and/or by detecting other (e.g. logical) fault conditions. For example, communication is still possible if one of the CAN bus lines (CANL or CANH) is accidentally connected to ground or to the supply voltage. This fault condition can be detected by monitoring voltage levels, but even during the fault condition, communication can continue. Another example is the use of standardised messages and by fault detection circuitry monitoring the syntax of those messages, and if the protocol is violated, to take appropriate measures.
For example, U.S. Pat. No. 7,017,072(B1) describes a system, where a CAN bus is partitioned in two network sections, which can be physically separated by means of a protective circuit comprising two fault state detection circuits for detecting a fault in each of the sections.